package com.kaizeli.website.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.kaizeli.website.pojo.entity.ProjectAcceptance;
import com.kaizeli.website.pojo.dto.ProjectAcceptanceDTO;
import com.kaizeli.website.response.Result;

import java.util.List;

/**
 * 项目验收单服务接口
 */
public interface ProjectAcceptanceService extends IService<ProjectAcceptance> {

    /**
     * 根据项目ID查询验收单列表
     */
    Result<List<ProjectAcceptanceDTO>> getAcceptanceByProjectId(Long projectId);

    /**
     * 根据验收单ID查询验收单详情
     */
    Result<ProjectAcceptanceDTO> getAcceptanceById(Long id);

    /**
     * 创建验收单
     */
    Result<ProjectAcceptance> createAcceptance(ProjectAcceptance acceptance);

    /**
     * 更新验收单
     */
    Result<Void> updateAcceptance(Long id, ProjectAcceptance acceptance);

    /**
     * 更新验收单状态
     */
    Result<Void> updateAcceptanceStatus(Long id, String status);

    /**
     * 删除验收单
     */
    Result<Void> deleteAcceptance(Long id);

    /**
     * 提交验收单
     */
    Result<Void> submitAcceptance(Long id);

    /**
     * 审核验收单
     */
    Result<Void> reviewAcceptance(Long id, String status, String remark);

    /**
     * 完成验收单
     */
    Result<Void> completeAcceptance(Long id);

    /**
     * 更新验收单完成时间
     */
    Result<Void> updateAcceptanceCompletionTime(Long id, String completionTime);

    /**
     * 根据项目编号查询验收单列表
     */
    List<ProjectAcceptanceDTO> getAcceptancesByProjectCode(String projectCode);

    /**
     * 根据项目ID查询验收单列表
     */
    List<ProjectAcceptanceDTO> getAcceptancesByProjectId(Long projectId);
}